1. Field of the Invention
The present invention generally relates to the optimization of component-based computer applications, which can be done automatically by a novice user, or manually by a user with domain knowledge without having to recompile or re-deploy the application.
2. Description of Related Art
The Component Balancer described herein establishes and maintains response time goals for selected business logic contained in methods in component-based applications. The premise for this optimization is that business logic in component methods can be driven to response-time goals by selectively delaying business logic in other component methods—e.g. two methods accessing the same table in a database.
This optimization can be done automatically by a novice user, or manually by a user with domain knowledge.
The Component Balancer leverages infrastructure technologies that support component-based optimizations, allowing the Component Balancer to work on a running system without recompiling or redeploying the application. The Component Balancer establishes and maintains response-time goals on business logic contained in methods in component technologies—such as COM+, .NET and BEA Weblogic EJB. As the load on the system varies, the Component Balancer attempts to keep methods with response-time objectives at a specified target performance level at the expense of lower priority methods.
Features of the Component balancer include automated or manual operation, an analysis capability that provides optimization hints, the ability to self-tune under variable load across machines, applications and application servers, with no changes required to the application itself. These features include the benefits of high priority methods responding consistently under variable load, and smoother resource utilization under peak load.
One related art method to which the method of the present invention generally relates is described in U.S. Pat. No. 5,822,749, entitled “Database System With Methods For Improving Query Performance With Cache Optimization Strategies”. This related art method is a database system and method for improving execution speed of database queries (e.g., for transaction processing and for decision support) by optimizing use of buffer caches. The system includes an Optimizer for formulating an optimal strategy for a given query. More particularly, the Optimizer communicates with a Buffer Manager before it formulates the query plan. For instance, the Optimizer may query the Buffer Manager for the purpose of determining whether the object of interest (e.g., table or index to be scanned) exists in its own buffer cache (i.e., whether it has been bound to a particular named cache). If the object exists in its own cache, the Optimizer may inquire as to how much of the cache (i.e., how much memory) the object requires, together with the optimal I/O size for the cache (e.g., 16K blocks). Based on this information, the Optimizer formulates a query strategy or plan with “hints,” which are ultimately passed to the Cache or Buffer Manager. By formulating “hints” for the Buffer Manager at the level of the Optimizer, knowledge of the query is, in effect, passed down to the Buffer Manager so that it may service the query using an optimal caching strategy—one based on the dynamics of the query itself. Based on the “hints” received from the Optimizer, the Buffer Manager can fine tune input/output (i.e., cache management) for the query. Specific Optimizer strategies are described for each scan method available to the system, including heap scan, clustered index, and non-clustered index access. Additional strategies are described for multi-table access during processing of join queries.
The present invention differs from the above prior cited art in that the prior invention, focuses on database queries, whereas the method of the present invention focuses on method calls. The method of the present invention optimizes across multiple machines and performs method optimization whereas the method of the prior related art only optimizes database queries on a single machine.